package com.tedu.day02.oop;

/**
 * this关键字----super关键字----使用完全一致
 * 不需要继承----指代当前类，指代当前
 * 使用方式：调用当前类的属性、方法、构造器
 *    this.属性              【给当前类的属性赋值】
 *                          出现构造器、方法中
 *                          区别当前类的属性与参数："名称"一致
 *    this.方法
 *    this()               多个有参构造器
 *
 *    鄙视题：this跟super关键字区别
 *          this  调用本类的属性、方法、构造器
 *          super 调用父类的属性、方法、构造器，存在继承关系，使用super
 *          this()和super()
 *          this() 调用父类的其他构造器---构造器首行
 *          super() 调用父类的其他构造器--子类构造器首行
 *    请问this()与super()可以同时出现在一个构造器中？
 */

public class This关键字 {
    int i; //属性----很少赋值【声明未赋值】---构造器或者方法当中赋值
    int j; //属性----很少赋值【声明未赋值】---构造器或者方法当中赋值

    public This关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }

    //构造器：有参构造器     创建1个参数对象  给i跟j赋值【跟一样super()】
    public This关键字(int i) {
        this(3,5); //调用本类的其他有参构造器===传参
        this.i = i;  //常见：   this.属性【当前类下的属性】= 参数
                    //赋值   this.i=1;

    }


    //方法---this.方法
    public void testI(){
        System.out.println("我是I");
    }
    public void testJ(){//调取---输出：我是I   我是J
        this.testI();
        System.out.println("我是J");
    }

    public static void main(String[] args) {
       System.out.println(new This关键字(1).j);
       new This关键字(1).testJ();//方法有输出语句
    }
}
